鐵人賽
React
javascript
nodejs
vscode
鐵人賽第九天,週末的早晨下了場大雨,但絕對澆不熄我們的熱情,立馬上工!
Object
就像一個收納櫃一樣,藉由小標籤(key
)來收納對應的物品(value
)。python dict
的朋友,應該對Object
不陌生,一樣藉由獨特的key值
來妥善記錄你的內容。key
與值
,你有幾種方式可以完成// example1: 宣告物件並在裡頭定義
let orderList = new Object({coke: 25, burger: 50, pie:35})
// example2: 花括號直接定義
let orderList = {
coke: 25,
burger: 50,
pie: 35
};
// 你可以這樣
orderList.steak = 180;
// 也可以這樣
orderList["steak"] = 180;
// 也能這樣!
Object.assign(orderList, {steak:180})
object
最酷的地方,之前剛看到時,一時恍神,覺得怎突然間key
和value
都搞定了。function
的開頭,定義了這些變數
,最後,要用object
將這些打包,只要用花括號,並用逗號將這些變數放入,打完,收工!let coke = 25
let burger = 50
let pie = 35
...
...
newOrderList = {coke, burger, pie} // { coke: 25, burger: 50, pie: 35 }
Spread Syntax
的概念,就像買了一台車,但我們想要客製化配件,與眾不同,帥麻let car = {color:"White", wheels:"Yokohama"};
//{ color: 'White', wheels: 'Yokohama' }
let myCar = {...car, color:"Red", wheels:"Michelin" }
//{ color: 'Red', wheels: 'Michelin' }
JS object
提供這樣的功能,讓你可以限定提取特定的變數出來,其他的用一個變數打包。let soldiers = {a:1, b:2, c:3, d:4, e:5};
{a, b, ...others} = soldiers;
console.log(a); // 1
console.log(b); // 2
console.log(others) //<-- 另外打包帶走
- 方法如右:
提取的key值: 你定義的新變數,把提取的value放這邊
let soldiers = {a:1, b:2, c:3, d:4, e:5};
{a:Kevin, b:Ronan, ...others} = soldiers;
console.log(Kevin); // 1
console.log(Ronam); // 2
let soldiers = {a:1, b:2, c:3, d:4, e:5};
for(name in soldiers){
console.log(name) // 依序印出 a, b, c, d, e
}
key
或value
單獨提取出來,並存成Array
,你可能第一部會想到用下面這個例子
- 範例1: 繁多的程式碼
let soldiers = {a:1, b:2, c:3, d:4, e:5};
let keyList = [];
ley valueList = [];
for(name in soldiers){
keyList.push(name); //<--組成key的array
valueList.push(soldiers[name]); //<--組成value的array
}
Object
內建的函式庫讓我們兩三下搞定let soldiers = {a:1, b:2, c:3, d:4, e:5};
Object.keys(soldiers) // [ 'a', 'b', 'c', 'd', 'e' ]
let soldiers = {a:1, b:2, c:3, d:4, e:5};
Object.values(soldiers) // [ 1, 2, 3, 4, 5 ]
Array func
吧,你可以結合這玩意,讓程式接續下去let soldiers = {a:1, b:2, c:3, d:4, e:5};
Object.values(soldiers).map((v)=>console.log(v+100)); // 印出 101 102 103 104 105
簡短、易懂
,今天我們好好認識了Object
,可以幫助我們建構出簡短、易懂
的程式,對我們寫React
將有大大的幫助。?